package com.fangcun.common.task.order;

import java.util.concurrent.Executors;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.stereotype.Component;

import com.fangcun.common.util.qiniu.QiniuUtils;

/**
 * @作者：陳曉鬆 @时间：2020年6月12日 下午3:22:11 @版本：V1.0 @description：-> 其他定时器
 */
@Component
@EnableAsync
@EnableScheduling
public class OtherTimer implements SchedulingConfigurer {

	// private static Logger LOG = LoggerFactory.getLogger(OrderTimer.class);

	@Autowired
	private QiniuUtils qiniuUtils;

	@Override
	public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {

		// 这里设置的线程池是corePoolSize也是很关键了，自己根据业务需求设定
		taskRegistrar.setScheduler(Executors.newScheduledThreadPool(10));

		// 定时清除过期的缓存
		taskRegistrar.addCronTask(new Runnable() {
			@Override
			public void run() {
				for (int i = 0; i < 200; i++) {
					if (qiniuUtils.deleteByPrefix("cache") == 0) {
						// 返回为0 则停止删除
						break;
					}
				}
			}
		}, "0 30 1 * * ? ");// 每天半夜一点半执行

	}

}
